import AsyncStorage from "@react-native-async-storage/async-storage"

// 服务器的基础地址
export const baseURL = 'https://www.codeboy.com/zhsqapi/'

/**
 * 1.2、用户登录
  接口地址：user/login
  请求方式：POST
  请求主体格式：application/json   
  请求数据说明：
    phone	是	string	手机号
    pwd	是	string	密码
 */
export const userLogin = async (phone, pwd) => {
  // 拼接URL
  const url = baseURL + 'user/login'
  // 发送请求
  const res = await fetch(url,{  
    method: 'POST',   // 请求方式
    headers: {    // 请求头信息
      'Content-Type': 'application/json'  // 内容类型
    },
    // 如果是JSON格式，需要手动转为JSON
    body: JSON.stringify({phone,pwd}) 
  })
  // 读取响应消息主体中的数据
  const data = await res.json()
  return data
}

/*
  商城首页数据
  接口地址：mall/index
  请求方式：GET
  请求参数：无
  请求头部：token - 用户登录后保存在客户端的身份凭证
  响应主体格式：json object，属性：
  名称	类型	说明
  userInfo	object	当前登录用户信息
  carousels	array	商城首页轮播广告列表
  goodsTypes	array	商品种类列表
*/
export const mallIndex = async () => {
  // 拼接URL  
  const url = baseURL + 'mall/index'
  // 获取存储的token
  const token = await AsyncStorage.getItem('userToken')
  // 发送请求
  const res = await fetch(url, {
    method: 'GET',  //请求方式
    headers: {  //请求头部
      token
    }
  })
  // 获取响应的JSON格式数据
  const data = await res.json()
  // 返回响应的JSON
  return data
} 

/**
 * 7.2、返回指定类型的商品列表
  接口地址：mall/goods/list
  请求方式：GET
  查询参数： 
  名称	必填	类型	说明
  tid	可选	int	待查询的商品类型
    1-折扣商品，默认值
    2-新年精选
    3-品牌精选
    ...
  order	可选	string	查询结果排序方法，可选值：
    soldcount：销量，默认值
    price-asc：价格升序排列
    price-desc：价格降序排列
 */
export const mallGoodsList = async (tid=1,order='soldcount') => {
  // 拼接URL
  const url = baseURL + `mall/goods/list?tid=${tid}&order=${order}`
  // 发送请求
  const res = await fetch(url, {
    method: 'GET',
    headers: {},
    // body: 请求体
  })
  // 获取响应主体中的JSON
  const data = await res.json()
  // 返回响应的JSON
  return data
}

/**
  7.3、返回指定编号的商品详情
  接口地址：mall/goods/details
  请求方式：GET
  查询参数： 
  名称	必填	类型	说明
  gid	必需	int	待查询的商品编号
 */
export const mallGoodsDetails = async (gid) => {
  // 拼接URL
  const url = baseURL + 'mall/goods/details?gid=' + gid
  // 发送请求
  const res = await fetch(url,{
    method: 'GET',
    headers: {},
    // body: 
  })
  // 获取响应的JSON数据
  const data = await res.json()
  // 返回响应主体
  return data
}